#pragma once

#include "../bzbutil/platform.h"


namespace bzbinput {


enum Key : int {

#if defined(WINDOWS)

	WINAPI_ERROR = -1,
	MOUSE_LEFT = 1,
	MOUSE_RIGHT = 2,
	CANCEL = 3,
	MOUSE_MIDDLE = 4,
	BACKSPACE = 8,
	TAB = 9,
	CLEAR = 12,
	ENTER = 13,
	SHIFT = 16,
	CONTROL = 17,
	ALT = 18,
	PAUSE = 19,
	CAPSLOCK = 20,
	ESCAPE = 0x1B,
	ESC = 0x1B,
	SPACE = 32,
	PAGEUP = 33,
	PAGEDOWN = 34,
	END = 35,
	HOME = 36,
	LEFT = 37,
	UP = 38,
	RIGHT = 39,
	DOWN = 40,
	SELECT = 41,
	PRINT = 42,
	EXECUTE = 43,
	SNAPSHOT = 44,
	INSERT = 45,
	DELETE = 46,
	HELP = 47,
	LWIN = 0x5B,
	RWIN = 0x5C,
	APPS = 0x5D,
	SLEEP = 0x5F,
	NUMPAD0 = 0x60,
	NUMPAD1 = 0x61,
	NUMPAD2 = 0x62,
	NUMPAD3 = 0x63,
	NUMPAD4 = 0x64,
	NUMPAD5 = 0x65,
	NUMPAD6 = 0x66,
	NUMPAD7 = 0x67,
	NUMPAD8 = 0x68,
	NUMPAD9 = 0x69,
	MULTIPLY = 0x6A,
	ADD = 0x6B,
	SEPARATOR = 0x6C,
	SUBTRACT = 0x6D,
	DECIMAL = 0x6E,
	DIVIDE = 0x6F,
	F1 = 0x70,
	F2 = 0x71,
	F3 = 0x72,
	F4 = 0x73,
	F5 = 0x74,
	F6 = 0x75,
	F7 = 0x76,
	F8 = 0x77,
	F9 = 0x78,
	F10 = 0x79,
	F11 = 0x7A,
	F12 = 0x7B,
	F13 = 0x7C,
	F14 = 0x7D,
	F15 = 0x7E,
	F16 = 0x7F,
	F17 = 0x80,
	F18 = 0x81,
	F19 = 0x82,
	F20 = 0x83,
	F21 = 0x84,
	F22 = 0x85,
	F23 = 0x86,
	F24 = 0x87,
	NUMLOCK = 0x90,
	SCROLL = 0x91,
	SHIFT_LEFT = 0xA0,
	SHIFT_RIGHT = 0xA1,
	CONTROL_LEFT = 0xA2,
	CONTROL_RIGHT = 0xA3,
	ALT_LEFT = 0xA4,
	ALT_RIGHT = 0xA5,
	ATTN = 0xF6,
	CRSEL = 0xF7,
	EXSEL = 0xF8,
	EREOF = 0xF9,
	PLAY = 0xFA,
	ZOOM = 0xFB,
	NONAME = 0xFC

#elif defined(LINUX)

	// TO-DO

	ESC = 27,
	BACKSPACE = 127,
	ENTER = 13,
	TAB = 9,
	END = 0,

#endif

};


}
